package com.platform.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单表实体
 * 表名 t_order
 * 订单管理:商城购买订单
 * @author lipengjun
 * @email 939961241@qq.com
 * @date 2019-02-16 18:32:26
 */
public class OrderEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    //编号
    private Long id;
    //订单编号
    private String orderNo;
    //交易标识
    private String trandNo;
    //用户id
    private Long userId;
    //用户名
    private String userName;
    //用户手机号
    private String userPhone;
    //用户类型
    private Integer userType;
    //产品编号
    private Integer productId;
    //产品名称
    private String productName;
    //产品路径
    private String productUrl;
    //交易金额
    private BigDecimal amount;
    //交易数量
    private Integer number;
    //折扣
    private Double discount;
    //支付方式（0微信支付、1支付宝支付、2银行卡支付）
    private Integer payWay;
    //银行卡交易时有值，银行类型|银行卡类别（0储蓄卡 1信用卡）|银行卡号
    private String payBankNo;
    //交易状态（1新订单，2进行中已支付，3已取消,4完成）
    private Integer status;
    //支付状态1未支付2已支付
    private Integer payStatus;
    private String receiveUser;
    private String receivePhone;
    //地址编号
    private String address;
    //省
    private String province;
    //市
    private String city;
    //区
    private String area;
    //实付金额
    private BigDecimal realAmount;
    //支付时间
    private Date payDate;
    //完成时间
    private Date finishDate;
    //创建时间
    private Date createDate;
    //物流编号
    private Integer logisticsId;
    //物流状态
    private Integer logisticsStatus;
    //物流编号
    private Integer merchantId;
    //物流状态
    private String merchantName;
    private Integer type;
    //费率
    private BigDecimal rate;
    //兑换费
    private BigDecimal rateValue;
    //物流单号
    private String logisticsno;
    //赠送能量数量
    private BigDecimal giveEnergy;
    //释放spc数量
    private BigDecimal spcFree;

    private String remark;

    private String addressStr;

    public String getAddressStr() {
        return this.province+this.city+this.area+this.address;
    }

    public void setAddressStr(String addressStr) {
        this.addressStr = addressStr;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getLogisticsno() {
        return logisticsno;
    }

    public void setLogisticsno(String logisticsno) {
        this.logisticsno = logisticsno;
    }

    /**
     * 设置：编号
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取：编号
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置：订单编号
     */
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    /**
     * 获取：订单编号
     */
    public String getOrderNo() {
        return orderNo;
    }

    /**
     * 设置：交易标识
     */
    public void setTrandNo(String trandNo) {
        this.trandNo = trandNo;
    }

    /**
     * 获取：交易标识
     */
    public String getTrandNo() {
        return trandNo;
    }

    /**
     * 设置：用户id
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * 获取：用户id
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * 设置：用户名
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 获取：用户名
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 设置：用户手机号
     */
    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }

    /**
     * 获取：用户手机号
     */
    public String getUserPhone() {
        return userPhone;
    }

    /**
     * 设置：用户类型
     */
    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    /**
     * 获取：用户类型
     */
    public Integer getUserType() {
        return userType;
    }

    /**
     * 设置：产品编号
     */
    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    /**
     * 获取：产品编号
     */
    public Integer getProductId() {
        return productId;
    }

    /**
     * 设置：产品名称
     */
    public void setProductName(String productName) {
        this.productName = productName;
    }

    /**
     * 获取：产品名称
     */
    public String getProductName() {
        return productName;
    }

    /**
     * 设置：产品路径
     */
    public void setProductUrl(String productUrl) {
        this.productUrl = productUrl;
    }

    /**
     * 获取：产品路径
     */
    public String getProductUrl() {
        return productUrl;
    }

    /**
     * 设置：交易金额
     */
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    /**
     * 获取：交易金额
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * 设置：交易数量
     */
    public void setNumber(Integer number) {
        this.number = number;
    }

    /**
     * 获取：交易数量
     */
    public Integer getNumber() {
        return number;
    }

    /**
     * 设置：折扣
     */
    public void setDiscount(Double discount) {
        this.discount = discount;
    }

    /**
     * 获取：折扣
     */
    public Double getDiscount() {
        return discount;
    }

    /**
     * 设置：支付方式（0微信支付、1支付宝支付、2银行卡支付）
     */
    public void setPayWay(Integer payWay) {
        this.payWay = payWay;
    }

    /**
     * 获取：支付方式（0微信支付、1支付宝支付、2银行卡支付）
     */
    public Integer getPayWay() {
        return payWay;
    }

    /**
     * 设置：银行卡交易时有值，银行类型|银行卡类别（0储蓄卡 1信用卡）|银行卡号
     */
    public void setPayBankNo(String payBankNo) {
        this.payBankNo = payBankNo;
    }

    /**
     * 获取：银行卡交易时有值，银行类型|银行卡类别（0储蓄卡 1信用卡）|银行卡号
     */
    public String getPayBankNo() {
        return payBankNo;
    }

    /**
     * 设置：交易状态（1新订单，2进行中已支付，3已取消,4完成）
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取：交易状态（1新订单，2进行中已支付，3已取消,4完成）
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置：支付状态1未支付2已支付
     */
    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    /**
     * 获取：支付状态1未支付2已支付
     */
    public Integer getPayStatus() {
        return payStatus;
    }

    /**
     * 设置：地址编号
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * 获取：地址编号
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置：省
     */
    public void setProvince(String province) {
        this.province = province;
    }

    /**
     * 获取：省
     */
    public String getProvince() {
        return province;
    }

    /**
     * 设置：市
     */
    public void setCity(String city) {
        this.city = city;
    }

    /**
     * 获取：市
     */
    public String getCity() {
        return city;
    }

    /**
     * 设置：区
     */
    public void setArea(String area) {
        this.area = area;
    }

    /**
     * 获取：区
     */
    public String getArea() {
        return area;
    }

    /**
     * 设置：实付金额
     */
    public void setRealAmount(BigDecimal realAmount) {
        this.realAmount = realAmount;
    }

    /**
     * 获取：实付金额
     */
    public BigDecimal getRealAmount() {
        return realAmount;
    }

    /**
     * 设置：支付时间
     */
    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

    /**
     * 获取：支付时间
     */
    public Date getPayDate() {
        return payDate;
    }

    /**
     * 设置：完成时间
     */
    public void setFinishDate(Date finishDate) {
        this.finishDate = finishDate;
    }

    /**
     * 获取：完成时间
     */
    public Date getFinishDate() {
        return finishDate;
    }

    /**
     * 设置：创建时间
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * 获取：创建时间
     */
    public Date getCreateDate() {
        return createDate;
    }

    /**
     * 设置：物流编号
     */
    public void setLogisticsId(Integer logisticsId) {
        this.logisticsId = logisticsId;
    }

    /**
     * 获取：物流编号
     */
    public Integer getLogisticsId() {
        return logisticsId;
    }

    /**
     * 设置：物流状态
     */
    public void setLogisticsStatus(Integer logisticsStatus) {
        this.logisticsStatus = logisticsStatus;
    }

    /**
     * 获取：物流状态
     */
    public Integer getLogisticsStatus() {
        return logisticsStatus;
    }

    public String getReceiveUser() {
        return receiveUser;
    }

    public void setReceiveUser(String receiveUser) {
        this.receiveUser = receiveUser;
    }

    public String getReceivePhone() {
        return receivePhone;
    }

    public void setReceivePhone(String receivePhone) {
        this.receivePhone = receivePhone;
    }

    public Integer getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Integer merchantId) {
        this.merchantId = merchantId;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public BigDecimal getRate() {
        return rate;
    }

    public void setRate(BigDecimal rate) {
        this.rate = rate;
    }

    public BigDecimal getRateValue() {
        return rateValue;
    }

    public void setRateValue(BigDecimal rateValue) {
        this.rateValue = rateValue;
    }

    public BigDecimal getGiveEnergy() {
        return giveEnergy == null ? new BigDecimal(0) : giveEnergy;
    }

    public void setGiveEnergy(BigDecimal giveEnergy) {
        this.giveEnergy = (giveEnergy==null?new BigDecimal(0) : giveEnergy);
    }

    public BigDecimal getSpcFree() {
        return spcFree == null ? new BigDecimal(0) : spcFree;
    }

    public void setSpcFree(BigDecimal spcFree) {
        this.spcFree = (spcFree == null ? new BigDecimal(0) :spcFree);
    }
}
